﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using Domain; //подключение Domain
using Session; //подключение Session
using Notif; //подключение Notif

namespace Sale_Dep_Dlv
{
    public partial class FormDlvUdp : Form
    {
        BrokerDlv b_dlv = new BrokerDlv(); // объявление BrokerDlv
        int idx; // объявление переменных для установки индекса

        public FormDlvUdp()
        {
            InitializeComponent();
        }

        private void Dlv_Upd_sBt_Upd_Click(object sender, EventArgs e) // при нажатии кнопки "Сохранить"
        {
            try
            {
                Dm_Delivery NewDlv = new Dm_Delivery(); // объявление Dm_Delivery как NewDlv
                Dm_Delivery OldDlv = new Dm_Delivery(); // объявление Dm_Delivery как OldDlv
                Dm_Pers prs = new Dm_Pers(); // объявление Dm_Pers

                OldDlv.Id_dlv = Convert.ToInt32(label9.Text); // присвоение значений OldDlv.Id_dlv из label9.Text

                prs = Dlv_Upd_cBE_Mg.SelectedItem as Dm_Pers; // присвоение prs значений из Dlv_Upd_cBE_Mg

                NewDlv.Date = Convert.ToDateTime(Dlv_Upd_dE_Dt.Text); // присвоение значений NewDlv.Date из Dlv_Upd_dE_Dt.Text
                NewDlv.Dis_time_ready = Dlv_Upd_tE_DsTmRd.Text; // присвоение значений NewDlv.Dis_time_ready из Dlv_Upd_tE_DsTmRd.Text
                NewDlv.Customer = Dlv_Upd_tE_Ctmr.Text; // присвоение значений NewDlv.Customer из Dlv_Upd_tE_Ctmr.Text
                NewDlv.Address = Dlv_Upd_tE_Adrs.Text; // присвоение значений NewDlv.Address из Dlv_Upd_tE_Adrs.Text
                NewDlv.Contact = Dlv_Upd_tE_Cntc.Text; // присвоение значений NewDlv.Contact из Dlv_Upd_tE_Cntc.Text
                NewDlv.Note = Dlv_Upd_tE_Nt.Text; // присвоение значений NewDlv.Note из Dlv_Upd_tE_Nt.Text
                NewDlv.Movers = Dlv_Upd_tE_Mvrs.Text; // присвоение значений NewDlv.Movers из Dlv_Upd_tE_Mvrs.Text

                b_dlv.Update(OldDlv, NewDlv, prs); // вызов функции на редактирование записи

                MessNotif.Informing("Запись успешно отредактирована.", "Запись отредактирована"); // информирование о редактирование записи 

                FClose(); // закрытие формы
            }

            catch (Exception ex) // если не добавилось
            {
                MessageBox.Show(ex.ToString());
            }
            
        }

        private void FormDlvUdp_Load(object sender, EventArgs e) // заполнение ComboBox при открытие формы
        {
            Dlv_Upd_cBE_Mg.Properties.Items.AddRange(b_dlv.FillComboBoxPers()); // заполнение FillComboBoxPers 

            int mg = Convert.ToInt32(Dlv_Upd_cBE_Mg.Text); // объявление переменной и присвоение ей значения из Dlv_Upd_cBE_Mg.Text

            for (int i = 0; i < Dlv_Upd_cBE_Mg.Properties.Items.Count; ++i) //цикл на просмотр всех Item-ов
            {
                string s = Dlv_Upd_cBE_Mg.Properties.Items[i].ToString(); // объявление переменной и присвоение ей значения Item-а
                if (s == b_dlv.idxPers(mg)) // вызов фенкции на "поиск по id" и сравниване полученных данных со значениями из Item-ов
                {
                    idx = i; // присваивание idx значения нужного индекса
                }
            }

            Dlv_Upd_cBE_Mg.SelectedIndex = idx; // установка индекса


            Dlv_Upd_dE_Dt.Properties.MinValue = Convert.ToDateTime(label10.Text).AddDays(1); // для выбора доступна "текущая дата + 1 день"

            if (Dm_User.Id_post == 3)
            {
                Dlv_Upd_cBE_Mg.Enabled = true;

            }
            else
                Dlv_Upd_cBE_Mg.Enabled = false;
        }

        private void Dlv_Upd_sBt_Ex_Click(object sender, EventArgs e) // закрытие формы
        {
            FClose();
           
        }

        private void FormDlvUdp_FormClosed(object sender, FormClosedEventArgs e) // закрытие формы
        {
            FClose();
        }

        private void FClose() // функция для закрытия формы
        {
            Dlv_Upd_cBE_Mg.Properties.Items.Clear(); // отчистка ComboBoxPost
            label10.Text = "";
            this.Close();
        }
        private void fullfill()
        {
            if (Dlv_Upd_dE_Dt.Text != "" & Dlv_Upd_tE_DsTmRd.Text != "" & Dlv_Upd_cBE_Mg.SelectedItem != null & Dlv_Upd_tE_Ctmr.Text != "" & Dlv_Upd_tE_Adrs.Text != "" & Dlv_Upd_tE_Cntc.Text != "" & Dlv_Upd_tE_Nt.Text != "" & Dlv_Upd_tE_Mvrs.Text != "")
            {
                Dlv_Upd_sBt_Upd.Enabled = true;
            }
            else
                Dlv_Upd_sBt_Upd.Enabled = false;
        }

        private void FormDlvUdp_MouseEnter(object sender, EventArgs e)
        {
            fullfill();
        }
    }
}
